Skip to content

Move the CVD Policy to the Security section of the documentation - #554

Merged
alexander-yevsyukov merged 8 commits into
masterfrom
security-section
Oct 1, 2026
Merged

alexander-yevsyukov merged 8 commits into
masterfrom
security-section

Conversation

@alexander-yevsyukov

Copy link
Copy Markdown
Contributor

The site side of the new Documentation → Security section, added in SpineEventEngine/documentation#88. The Coordinated Vulnerability Disclosure Policy moves from /cvd-policy/ to /docs/security/cvd-policy/, next to the new Security policy and Verifying artifacts pages.

What changed

  • Module pin: documentation is pinned to the head of Add style for quotes #88 (1d7c3e1). MVS also raises validation/docs from 2026-05-22 to 2026-05-23, the version documentation requires. go.sum only gains the four lines the bump needs; no tidy.
  • Old page removed, redirect added: site/static/cvd-policy/index.html redirects to the new page.
    • GitHub Pages can't send HTTP redirects, so it's a meta refresh page with rel=canonical and noindex, like the ones Hugo generates for aliases.
    • GitHub Pages already redirects /cvd-policy to /cvd-policy/.
    • Its URLs are site-relative on purpose: lychee checks a redirect page's canonical link, and an absolute URL would be checked against the live site, where the new page doesn't exist until this deploys.
    • The org-wide SECURITY.md and outside sites link to /cvd-policy/, so the redirect must stay.
  • Links: the footer's "CVD Policy" link and the Policy: field of security.txt point to the new URL. security.txt also gets its Expires: fixed: 2027-09-10 T13:05… had a stray space, which makes it an invalid RFC 9116 timestamp.
  • Numbered headings in docs pages: layouts/docs/single.html now honours has_numbered_headings, as layouts/privacy/single.html does, so the moved policy keeps its numbered sections.
  • Numbered TOC fix (_numbered-headings.scss): the #TableOfContents rules never ran before, because no page had put a TOC inside .numbered-headings. The number lacked position: absolute, so it took 30px next to the link's 42px padding instead of sitting inside it. That caused a wide gap, and the flex item shrank on titles that wrap, misaligning them. Two declarations fix it.
  • Fresh SECURITY.md (second commit): the Security policy page fetches SECURITY.md from SpineEventEngine/.github at build time.
    • Fetched files now expire after an hour. Hugo's default is never, and check-links restores the Hugo cache between runs.
    • gh-pages.yml gets a workflow_dispatch trigger, guarded to deploy only from master, so a SECURITY.md change can be published without a commit here.

Merge order

Merge SpineEventEngine/documentation#88 first. The pin points to that PR's head commit. If #88 gets new commits before it merges, this pin needs a matching bump. Once #88 merges with a merge commit, 1d7c3e1 stays reachable from master.

Verification

  • Built with the pinned module (hugo -e development): no errors; the three Security pages, the redirect and the numbered headings are all present.
  • Checked in a browser against the local documentation checkout:
    • the Security section comes last in the sidenav;
    • /cvd-policy and /cvd-policy/ both reach the new page;
    • the footer link works;
    • the body headings and the TOC are numbered;
    • TOC titles stay aligned when they wrap, including in a 180px-wide TOC.
  • lychee (this repo's config) on the changed pages: the redirect's links resolve against the local build. The only remaining 404 is the absolute Policy: URL in security.txt, which the CI check doesn't scan (it scans *.html) and which resolves once this deploys.

🤖 Generated with Claude Code

alexander-yevsyukov and others added 2 commits September 30, 2026 21:23
The Coordinated Vulnerability Disclosure Policy now lives in the
`documentation` repository, under Documentation > Security, at
`/docs/security/cvd-policy/` (SpineEventEngine/documentation#88).

- Pin the `documentation` module to the head of that pull request,
  which brings the Security section. This also raises `validation/docs`
  to the version `documentation` requires.
- Remove the old page and add a static redirect from `/cvd-policy/`.
  GitHub Pages cannot send HTTP redirects, so the page redirects in the
  browser. Its URLs are site-relative, so the link check follows them
  to the local build rather than to the live site. `SECURITY.md` and
  other sites link to `/cvd-policy/`, so the redirect is to stay.
- Point the footer link and the `Policy` field of `security.txt` to the
  new URL, and fix its `Expires` value: a stray space made the timestamp
  invalid under RFC 9116.
- Let the docs layout honour `has_numbered_headings`, as the privacy
  layout does, so the moved policy keeps its numbered sections.
- Fix the numbered table of contents: the number lacked
  `position: absolute`, so it took space next to the padding meant to
  hold it, leaving a wide gap and misaligning titles that wrap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Security policy page fetches `SECURITY.md` from
`SpineEventEngine/.github` when the site is built.

- Expire fetched files after an hour. Hugo never expires them by
  default, and the `check-links` workflow restores the Hugo cache
  between runs, so it would keep serving the first copy.
- Allow running the deploy by hand, from `master` only, to publish a
  change to `SECURITY.md` without a commit here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-30T20:40:32.105438Z 34673e2 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 34673e2fe6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread site/config/_default/hugo.toml Resolved
alexander-yevsyukov and others added 5 commits September 30, 2026 21:43
A deploy, manual ones included, must publish the current `SECURITY.md`.
With the one-hour expiry, a deploy that restored a Hugo cache would
publish a copy up to an hour old. The deploy workflow doesn't restore
the Hugo cache today, since Hugo doesn't use the directory it caches,
but that is an accident of paths rather than a guarantee.

Production builds now keep no fetched files at all. Development builds,
including the link check, keep them for an hour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@armiol armiol left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@alexander-yevsyukov LGTM except for a single comment to discuss.

Comment thread docs/project.md

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This whole file looks suspicious. Let's discuss.

@alexander-yevsyukov
alexander-yevsyukov merged commit 3273b27 into master Oct 1, 2026
4 checks passed
@alexander-yevsyukov
alexander-yevsyukov deleted the security-section branch October 1, 2026 13:55
@github-project-automation github-project-automation Bot moved this from In Review to ✅ Done in v2.0 Oct 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants